# -*- coding: UTF-8 -*-
"""
@Project ：lufei-learning-city 
@File    ：生成器的创建.py
@IDE     ：PyCharm 
@Author  ：于金龙@阿龙的代码在报错
@Date    ：2025/1/24 下午3:36 
"""
# 使用生成器推导式创建生成器
a = (x for x in "baaaaaabbbbcccfff")
print(a)  # generator object
# 获取生成器中的对象
print(next(a))


# 使用for循环和yield 创建生成器
def func():
    for i in range(5):
        print("循环体")  # 当循环执行return的时候循环直接结束，不会只想第二循环
        return i * i  # 返回的结果是一个 0


result = func()
print(result)


def CreateGenerator():
    for i in range(5):
        print("我是一个循环体")
        yield i * i  # 这个时候函数并没有停止调用只是暂停调用了，再次调用的时候会在上次循环的基础上继续执行 这个时候返回的就是一个生成器对象 generator object


result1 = CreateGenerator()
print(result1)

# 调用generator object中的数据
print(next(result1))
print(next(result1))
